package day03;

/*
方法的重载：同名的方法，参数个数、参数类型、参数顺序不同。
            对于调用者来说，使用起来比较简单。
            System.out.println() 是重载的方法，不管打印什么类型的变量，用这个方法即可。

            python中不存在此问题，定义一个方法，可以传任意类型的参数。
 */
public class Demo02 {
    public static void main(String[] args) {
        // 系统根据传入的参数类型，自动判断调用哪个方法。
        System.out.println(10);
        System.out.println("Hello");

        // 静态的方法，在同一个类内部，可直接调用。
        // 跨类，用Demo02.add的方式调用
        System.out.println(add(10, 20));
        System.out.println(add(10.0f, 20.0f));
        System.out.println(add(10, "20"));
        System.out.println(add("Hello", "world"));
    }

    /*
    加法：
     */
    public static int add(int a, int b) {
        return a + b;
    }
    /* 参数相同，返回值不同，不构成重载，系统根据参数无法判断该调用哪个方法。
    public static double add(int a, int b) {
        return a + b;
    }*/

    public static float add(float c, float d) {
        return c + d;
    }

    public static String add(int e, String f) {
        return e + f;
    }

    public static String add(String g, String h) {
        return g + h;
    }

}
